]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
altTab: don't override icon size request
authorCosimo Cecchi <cosimoc@gnome.org>
Sun, 16 Feb 2014 03:45:28 +0000 (19:45 -0800)
committerCosimo Cecchi <cosimoc@gnome.org>
Sun, 16 Feb 2014 15:49:24 +0000 (07:49 -0800)
Instead of overriding the actor's request with the icon size, just set
the new icon size on the actors, and let the default handler take the
preferred size of children.

https://bugzilla.gnome.org/show_bug.cgi?id=705410

js/ui/altTab.js

index adfb02d9256137e22dc72b5fc5db9a58e6fe6be1..9b6c7044c0538c7734f2fbd2eeff514b45315468 100644 (file)
@@ -430,7 +430,6 @@ const AppIcon = new Lang.Class({
 
     set_size: function(size) {
         this.icon = this.app.create_icon_texture(size);
-        this._iconBin.set_size(size, size);
         this._iconBin.child = this.icon;
     }
 });
@@ -479,12 +478,13 @@ const AppSwitcher = new Lang.Class({
             Mainloop.source_remove(this._mouseTimeOutId);
     },
 
-    _getPreferredHeight: function (actor, forWidth, alloc) {
+    _setIconSize: function() {
         let j = 0;
         while(this._items.length > 1 && this._items[j].style_class != 'item-box') {
                 j++;
         }
         let themeNode = this._items[j].get_theme_node();
+
         let iconPadding = themeNode.get_horizontal_padding();
         let iconBorder = themeNode.get_border_width(St.Side.LEFT) + themeNode.get_border_width(St.Side.RIGHT);
         let [iconMinHeight, iconNaturalHeight] = this.icons[j].label.get_preferred_height(-1);
@@ -495,19 +495,17 @@ const AppSwitcher = new Lang.Class({
         let primary = Main.layoutManager.primaryMonitor;
         let parentPadding = this.actor.get_parent().get_theme_node().get_horizontal_padding();
         let availWidth = primary.width - parentPadding - this.actor.get_theme_node().get_horizontal_padding();
-        let height = 0;
 
-        for(let i =  0; i < iconSizes.length; i++) {
+        if (this._items.length == 1) {
+            this._iconSize = iconSizes[0];
+        } else {
+            for(let i =  0; i < iconSizes.length; i++) {
                 this._iconSize = iconSizes[i];
-                height = iconSizes[i] + iconSpacing;
+                let height = iconSizes[i] + iconSpacing;
                 let w = height * this._items.length + totalSpacing;
                 if (w <= availWidth)
-                        break;
-        }
-
-        if (this._items.length == 1) {
-            this._iconSize = iconSizes[0];
-            height = iconSizes[0] + iconSpacing;
+                    break;
+            }
         }
 
         for(let i = 0; i < this.icons.length; i++) {
@@ -515,9 +513,11 @@ const AppSwitcher = new Lang.Class({
                 break;
             this.icons[i].set_size(this._iconSize);
         }
+    },
 
-        alloc.min_size = height;
-        alloc.natural_size = height;
+    _getPreferredHeight: function (actor, forWidth, alloc) {
+        this._setIconSize();
+        this.parent(actor, forWidth, alloc);
     },
 
     _allocate: function (actor, box, flags) {